---
layout: api
page_title: Scaling Policies - HTTP API
description: The /scaling/policy endpoints are used to list and view scaling policies.
---

# Scaling Policies HTTP API

The `/scaling/policies` and `/scaling/policy/` endpoints are used to list and view scaling policies.

## List Scaling Policies

This endpoint returns the scaling policies from all jobs.

| Method | Path                | Produces           |
| ------ | ------------------- | ------------------ |
| `GET`  | `/v1/scaling/policies` | `application/json` |

The table below shows this endpoint's support for
[blocking queries](/nomad/api-docs#blocking-queries), [consistency modes](/nomad/api-docs#consistency-modes) and
[required ACLs](/nomad/api-docs#acls).

| Blocking Queries | Consistency Modes | ACL Required                      |
| ---------------- | ----------------- | --------------------------------- |
| `YES`            | `all`             | `namespace:list-scaling-policies` |

### Parameters

- `job` `(string: "")`- Specifies the job ID to filter policies by.

- `type` `(string: "")` - Specifies the type of scaling policy to filter by. In
  the open source version of Nomad, `horizontal` is the only supported value.
  Within Nomad Enterprise, `vertical_mem` and `vertical_cpu` are supported along
  with `vertical`. The latter returns policies matching both `vertical_mem` and
  `vertical_cpu`.

### Sample Request

```shell-session
$ curl \
    https://localhost:4646/v1/scaling/policies
```

```shell-session
$ curl \
    https://localhost:4646/v1/scaling/policies?job=example
```

```shell-session
$ curl \
    https://localhost:4646/v1/scaling/policies?type=vertical
```

### Sample Response

```json
[
  {
    "ID": "b2c64295-4315-2fdc-6158-a27156808729",
    "Enabled": true,
    "Type": "vertical_cpu",
    "Target": {
      "Namespace": "default",
      "Job": "example",
      "Group": "cache",
      "Task": "redis"
    },
    "CreateIndex": 1340,
    "ModifyIndex": 1340
  },
  {
    "ID": "c355d0ec-7aa1-2604-449d-4ec79c813d2c",
    "Enabled": true,
    "Type": "vertical_mem",
    "Target": {
      "Job": "example",
      "Group": "cache",
      "Task": "redis",
      "Namespace": "default"
    },
    "CreateIndex": 1340,
    "ModifyIndex": 1340
  },
  {
    "ID": "31a53813-24df-b2ad-77dc-1b4bad4e7dca",
    "Enabled": true,
    "Type": "horizontal",
    "Target": {
      "Job": "example",
      "Group": "cache",
      "Namespace": "default"
    },
    "CreateIndex": 1358,
    "ModifyIndex": 1358
  }
]
```

## Read Scaling Policy

This endpoint reads a specific scaling policy.

| Method | Path                         | Produces           |
| ------ | ---------------------------- | ------------------ |
| `GET`  | `/v1/scaling/policy/:policy_id` | `application/json` |

The table below shows this endpoint's support for
[blocking queries](/nomad/api-docs#blocking-queries), [consistency modes](/nomad/api-docs#consistency-modes) and
[required ACLs](/nomad/api-docs#acls).

| Blocking Queries | Consistency Modes | ACL Required                    |
| ---------------- | ----------------- | ------------------------------- |
| `YES`            | `all`             | `namespace:read-scaling-policy` |

### Parameters

- `:policy_id` `(string: <required>)` - Specifies the ID of the scaling policy (as returned
  by the scaling policy list endpoint). This is specified as part of the path.

### Sample Request

```shell-session
$ curl \
    https://localhost:4646/v1/scaling/policy/5e9f9ef2-5223-6d35-bac1-be0f3cb974ad
```

### Sample Response

```json
{
  "CreateIndex": 10,
  "Enabled": true,
  "ID": "5e9f9ef2-5223-6d35-bac1-be0f3cb974ad",
  "Type": "horizontal",
  "Max": 10,
  "Min": 0,
  "ModifyIndex": 10,
  "Policy": {
    "engage": true,
    "foo": "bar",
    "howdy": "doody",
    "value": 6.0
  },
  "Target": {
    "Group": "cache",
    "Job": "example",
    "Namespace": "default"
  }
}
```
